//
//  DateUtil.h
//  SIqICalendar
//
//  Created by SKiran on 17/2/24.
//  Copyright © 2017年 sjw. All rights reserved.
//

#import <Foundation/Foundation.h>

#define ChineseFestival @[@"除夕",@"春节",@"中秋",@"劳动",@"国庆",@"儿童",@"圣诞",@"七夕",@"端午",@"护士",@"清明"]

@interface DateUtil : NSObject
@property(nonatomic, strong) NSString *dateFormatterStr;

+ (DateUtil *)dateUtilShareIntance;


/**
 时间转换成时间字符串

 @param date 时间
 @return 转换完的字符串
 */
- (NSString *)dateToDateStr:(NSDate *)date;

/**
 根据日期获取day
 
 @param date date
 @return day日
 */
- (NSString *)dateToMonthDayStr:(NSDate *)date;

/**
 时间转换成时间字符串
 
 @param date 时间
 @return 转换完的字符串
 */
- (NSString *)dateToDateStr:(NSDate *)date withFormatter:(NSString *)formatterStr;

/**
 拼接成日期格式
 
 @param year 年
 @param month 月
 @param day 日
 @return 拼好的日期
 */
- (NSDate *)convertToDateWithYear:(int)year Month:(int)month Day:(int)day;


/**
 时间字符串转换成时间

 @param dateStr 时间字符串
 @param formatterStr 格式
 @return nsdate
 */
- (NSDate *)dateStrToDate:(NSString *)dateStr withFormatter:(NSString *)formatterStr;

/**
 拆分日期
 
 @param date 日期
 @return 日期组件
 */
- (NSDateComponents *)getComps:(NSDate *)date;

/**
 所选日期的下一个月份
 
 @param date NSDate
 @return preDate
 */
- (NSDate *)nextMonth:(NSDate *)date;

/**
 所选日期的上一个月份
 
 @param date NSDate
 @return preDate
 */
- (NSDate *)preMonth:(NSDate *)date;

/**
 取所选日期的第二天日期

 @param date 所选日期
 @return 第二天
 */
- (NSDate *)theDayTomorrowDate:(NSDate *)date;

/**
 当前日期月份的第一天
 
 @param date NSDate
 @return preDate
 */
- (NSDate *)currentMonthFirstDay:(NSDate *)date;

/**
 取日历的第一天
 
 @param date
 @return date
 */
- (NSDate *)getTheCalendarFirstDayWithDate:(NSDate *)date;

/**
 取所选日期当周的第一天
 
 @param date
 @return date
 */
- (NSDate *)getTheFirstDayInTheDateWeek:(NSDate *)date;

/**
 计算两个日期的间隔天数
 
 @param serverDate 早些的日期
 @param endDate 晚些的日期
 @return 天数
 */
- (NSInteger)getDaysFrom:(NSDate *)serverDate To:(NSDate *)endDate;


/**
 根据所选日期取出年份与月份

 @param month 月份
 @param year 年
 @param date 日期
 */
- (void)setCurrentMonth:(NSInteger *)month
         andCurrentYear:(NSInteger *)year
               withDate:(NSDate *)date;

/**
 获取date当天的农历
*/
- (NSAttributedString *)chineseCalendarOfDate:(NSDate *)date;


/**
 将串班字符串转为串班数组
 
 @param changedStr 串班字符串
 @return 数组
 */
- (NSArray *)getChangedDataByChangestr:(NSString *)changedStr;

/**
 将串班数组转为串班字符串
 */
- (NSString *)getChangedStrByChangedDatas:(NSArray *)changeds;
//
//- (NSDictionary *)roundModelToDic:(RoundModel *)model;
//
//- (RoundModel *)dicToRoundModel:(NSDictionary *)dic;
//
//- (RoundModel *)judeThisDateIsExchanged:(NSDate *)date andExchanges:(NSArray *)ary;
@end
